﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using QuanLyDoanVien.General;
using QuanLyDoanVien.Bussiness;
using QuanLyDoanVien.Controller;
namespace QuanLyDoanVien
{
    public partial class frmQLHSViPham : DevComponents.DotNetBar.Office2007Form
    {
        public frmQLHSViPham()
        {
            InitializeComponent();
        }
        #region Bien
        AutoCompleteStringCollection autoHocSinh = new AutoCompleteStringCollection();
        QuyDinh m_QuyDinh = new QuyDinh();
        List<HocSinhInfo> dsHS = new List<HocSinhInfo>();
        List<HocSinhViPhamInfo> dsHSVP = new List<HocSinhViPhamInfo>();
        List<KyLuatInfo> dsKyLuat = new List<KyLuatInfo>();
        HocSinhViPhamCtrl m_HocSinhViPhamCtrl = new HocSinhViPhamCtrl();
        HocSinhCtrl m_HocSinhCtrl = new HocSinhCtrl();
        KyLuatCtrl m_KyLuatCtrl = new KyLuatCtrl();

        #endregion

        #region Ham
        //private void loadDSHocSinh()
        //{
        //    dsHS = m_HocSinhCtrl.layDSHS();
        //    combHocSinh.DataSource = dsHS;
        //    combHocSinh.ValueMember = "MaHocSinh";
        //    combHocSinh.DisplayMember = "HoTen";
        //    foreach (HocSinhInfo hs in dsHS)
        //    {
        //        autoHocSinh.Add(hs.HoTen);
        //    }

        //    combHocSinh.AutoCompleteCustomSource = autoHocSinh;
        //}
        private void setFormatDate()
        {
            date_VP_ViPham.CustomFormat = "dd/MM/yyyy";
            date_VP_ViPham.Value = DateTime.Now;
        }

        private void loadCombKyLuat()
        {
            dsKyLuat = m_KyLuatCtrl.layDSKyLuat();
            combKyLuat.DataSource = dsKyLuat;
            combKyLuat.ValueMember = "MaKyLuat";
            combKyLuat.DisplayMember = "TenKyLuat";
        }
        private void loadDSHocSinhViPham()
        {
            // dsHSVP = m_HocSinhViPhamCtrl.layDanhSachHocSinHViPham();
            DataTable hsvp = m_HocSinhViPhamCtrl.layDSHSViPham();
            dataGridView_VP.Rows.Clear();
            int i = 0;
            foreach (DataRow dr in hsvp.Rows)
            {
                DateTime NgayVP = DateTime.Parse(dr["NgayViPham"].ToString());
                String strNgayVP = NgayVP.ToString("dd/MM/yyyy");
                dataGridView_VP.Rows.Add(dr["MaHocSinh"].ToString(), dr["HoTen"].ToString(), dr["TenLop"].ToString(), dr["TenKyLuat"].ToString(),strNgayVP, dr["GhiChu"].ToString(),dr["AnhHocSinh"].ToString());
                dataGridView_VP.Rows[i].Tag = dr["MaKyLuat"].ToString();
                i++;
            }
        }

        private void resetForm()
        {
            txt_VP_GhiChu.Text = "";
            txtTenHSVP.Text = "";
            loadCombKyLuat();
            date_VP_ViPham.Value = DateTime.Now;

        }

        private bool checkValueValid()
        {
            if (combKyLuat.Items.Count < 1)
            {
                MessageBox.Show("Vui lòng chọn kỷ luât", "Thông báo");
                return false;
            }
            if (dataGridView_TimHSVP.SelectedRows.Count < 1)
            {
                MessageBox.Show("Vui lòng nhập mã học sinh", "Thông Báo");

                return false;
            }


            return true;
        }
        #endregion
        private void frmQLHSViPham_Load(object sender, EventArgs e)
        {
            setFormatDate();
            loadCombKyLuat();
            loadDSHocSinhViPham();
            //loadDSHocSinh();
        }

        private void btn_VP_Them_Click(object sender, EventArgs e)
        {

            resetForm();

        }

        private void dataGridView_VP_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            setFormatDate();
            if (dataGridView_VP.SelectedRows.Count > 0)
            {

                DataGridViewRow dr = dataGridView_VP.SelectedRows[0];
                if (dr.IsNewRow)
                {
                    resetForm();
                    return;
                }
                txtTenHSVP.Text = dr.Cells["TenHocSinh"].Value.ToString();
                txtTenHSVP.Tag = dr.Cells["MaHocSinh"].Value.ToString();
                combKyLuat.SelectedValue = dr.Tag.ToString();
                txt_VP_GhiChu.Text = dr.Cells["GhiChu"].Value.ToString();
                String[] strNgayVP = dr.Cells["NgayViPham"].Value.ToString().Split('/');
                this.date_VP_ViPham.Value =new  DateTime(int.Parse(strNgayVP[2]),int.Parse(strNgayVP[1]),int.Parse(strNgayVP[0]));
                String link_ing = frmQLHS.root_img_link + dr.Cells["AnhHocSinh"].Value.ToString();
                this.picAvatar.Image = new Bitmap(link_ing);
            }
        }

        private void txt_VP_MaHS_TextChanged(object sender, EventArgs e)
        {
        }

        private void btn_VP_Luu_Click(object sender, EventArgs e)
        {
            if (!checkValueValid())
            {
                return;
            }


            foreach (DataGridViewRow dr in dataGridView_TimHSVP.SelectedRows)
            {
                if (m_HocSinhViPhamCtrl.layHocSinhViPham(combKyLuat.SelectedValue.ToString(), dr.Cells["MaHS"].Value.ToString()) != null)
                {
                    MessageBox.Show("Dữ liệu vừa thêm đã tồn tại", "Thông Báo");
                    return;
                }
                HocSinhViPhamInfo hs = new HocSinhViPhamInfo();
                hs.MaHocSinh = dr.Cells["MaHS"].Value.ToString();
                hs.MaKyLuat = combKyLuat.SelectedValue.ToString();
                hs.NgayViPham = date_VP_ViPham.Value.ToString();
                hs.GhiChu = txt_VP_GhiChu.Text;
                if (m_HocSinhViPhamCtrl.themHocSinhViPham(hs))
                {
                    MessageBox.Show("Thêm thành công", "Thông báo");
                    loadDSHocSinhViPham();
                    resetForm();
                }
                else
                    MessageBox.Show("Thêm thất bại", "Thông báo");
            }

        }

        private void btn_VP_Xoa_Click(object sender, EventArgs e)
        {
            if (combKyLuat.Items.Count < 1)
            {
                MessageBox.Show("Vui lòng chọn kỷ luật", "Thông Báo");
                return;
            }

            if (m_HocSinhViPhamCtrl.layHocSinhViPham(combKyLuat.SelectedValue.ToString(), txtTenHSVP.Tag.ToString()) == null)
            {
                MessageBox.Show("Học sinh này chưa vi phạm kỷ luật", "Thông Báo");
                return;
            }

            if (m_HocSinhViPhamCtrl.xoaHocSinhViPham(combKyLuat.SelectedValue.ToString(), txtTenHSVP.Tag.ToString()))
            {
                MessageBox.Show("Xoá thành công", "Thông báo");
                loadDSHocSinhViPham();
                resetForm();
            }
            else
                MessageBox.Show("Xoá thất bại", "Thông Báo");


        }

        private void btn_VP_Sua_Click(object sender, EventArgs e)
        {
            if (combKyLuat.Items.Count < 1)
            {
                MessageBox.Show("Vui lòng chọn kỷ luật", "Thông Báo");
                return;
            }

            if (m_HocSinhViPhamCtrl.layHocSinhViPham(combKyLuat.SelectedValue.ToString(), txtTenHSVP.Tag.ToString()) == null)
            {
                MessageBox.Show("Học sinh này chưa vi phạm kỷ luật", "Thông Báo");
                return;
            }

           

            HocSinhViPhamInfo hs = new HocSinhViPhamInfo();
            hs.MaKyLuat = combKyLuat.SelectedValue.ToString();
            hs.MaHocSinh = txtTenHSVP.Tag.ToString();
            hs.NgayViPham = date_VP_ViPham.Value.ToString();
            hs.GhiChu = txt_VP_GhiChu.Text;

            if (m_HocSinhViPhamCtrl.updateHocSinhViPham(hs))
            {
                MessageBox.Show("Cập nhật thành công", "Thông báo");
                loadDSHocSinhViPham();
                resetForm();
            }
            else
                MessageBox.Show("Cập nhật thất bại", "Thông báo");
        }

        private void bntTim_Click(object sender, EventArgs e)
        {
            DataTable dt = m_HocSinhCtrl.TimKiemTheoTen(txtTenHSVP.Text);
            dataGridView_TimHSVP.Rows.Clear();
            int i = 0;
            foreach (DataRow dr in dt.Rows)
            {
                Image img = new Bitmap("hinhhocsinh/" + dr["AnhHocSinh"]);
                Image temp = new Bitmap(img, new Size(50, 70));
                dataGridView_TimHSVP.Rows.Add(temp, dr["MaHocSinh"].ToString(), dr["HoTen"].ToString(), dr["TenLop"].ToString());
                dataGridView_TimHSVP.Rows[i].Height = 80;

                dataGridView_TimHSVP.Rows[i].Tag = img;
                i++;
            }
        }

        private void dataGridView_TimHSVP_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridView_TimHSVP.SelectedRows.Count > 0)
            {
                DataGridViewRow dr = dataGridView_TimHSVP.SelectedRows[0];
                Image img = (Image)dr.Tag;
                picAvatar.Image = img;
            }
        }

        

        //private void combHocSinh_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //    this.lblMaHS.Text = this.combHocSinh.SelectedValue.ToString().ToUpper();
        //}
    }
}